<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2020/11/25
 * Time: 17:05
 */

namespace app\index\controller;


class UniPush
{
    static function push($cid){
        try {
            $client = new \GeTui\Client([
                'app_key' => 'Xw27x1BaCw6xM0LEoyduM7',
                'app_id' => 'E8oOecFjRt58z1BUAHl2nA',
                'master_secret' => 'VgNT0H5JXtAKrwqJLIXq19',
                'logo_url' => 'http://dev.img.ybzg.com/static/app/user/getui_logo.png',
            ]);
            dump($client);

            /**
             * 别名推送安卓应用推送
             * 这里别名和设备号不可以重复设置，只有其一生效
             */
            $client->single->setClientId($cid)
                ->setStyle(function (\GeTui\Template\Style $style) {
                    /** 设置标题（必传） */
                    $style->setTitle('测试标题');
                    /** 设置内容（必传） */
                    $style->setText('测试内容');
                    /** 如果配置中设置过了，那这里就不需要设置，如果设置了将覆盖配置的url */
                    $style->setLogourl('');
                    /** 设置logo,这个是APP本地文件的logo名称，一般不会设置，直接使用logo_url */
                    $style->setLogo('');

                    /** 通知是否可清除： true可清除，false不可清除。默认可清除 */
                    $style->setIsClearable(true);
                    /** 收到通知是否振动：true振动，false不振动。默认振动 */
                    $style->setIsVibrate(true);
                    /** 收到通知是否响铃：true响铃，false不响铃。默认响铃 */
                    $style->setIsRing(true);

                    /** 背景图样式，设置背景图的url地址 */
                    $style->setBannerUrl('');

                    /** 展开通知样式，设置类型
                     * 1 通知展示大图样式，参数是大图的URL地址
                     * 2 通知展示文本+长文本样式，参数是长文本
                     * 3 通知展示大图+小图样式，参数是大图URL和小图URL
                     */
                    $style->setBigStyle(1);
                    //展开通知样式 1
                    $style->setBigImageUrl('');
                    //展开通知样式 2
                    $style->setBigText('');
                    //展开通知样式 3，这个是大图和背景图的2个参数组合
                    //$style->setBigImageUrl('');
                    //$style->setBannerUrl('');

                });
            /** 打开应用模板消息（模板消息只可以设置一种） */
            $client->single->setNotification(function (\GeTui\Template\Notification $notification) use ($client) {
                //收到消息是否立即启动应用，true为立即启动，false则广播等待启动，默认是否
                $notification->setTransmissionType(true);
                //（可空）透传字符串
                $notification->setTransmissionContent(json_encode(['name' => '周先生']));
                //（必传）设置样式，结合Style的设置获取指定的样式类型：system(个推),getui(个推),banner(背景图),expand(展开)
                $notification->setStyle($client->single->getStyle());
                //设定展示开始时间，格式为yyyy-MM-dd HH:mm:ss
                $notification->setDurationBegin('2018-05-06 12:00:00');
                //设定展示结束时间，格式为yyyy-MM-dd HH:mm:ss
                $notification->setDurationEnd('2018-05-08 12:00:00');
            });
            /** 打开网页模板消息（模板消息只可以设置一种） */
            $client->single->setLink(function (\GeTui\Template\Link $link) use ($client) {
                //（必传）打开网址的地址
                $link->setUrl('');
                //（必传）设置样式，结合Style的设置获取指定的样式类型：system(个推),getui(个推),banner(背景图),expand(展开)
                $link->setStyle($client->single->getStyle());
                //设定展示开始时间，格式为yyyy-MM-dd HH:mm:ss
                $link->setDurationBegin('2018-05-06 12:00:00');
                //设定展示结束时间，格式为yyyy-MM-dd HH:mm:ss
                $link->setDurationEnd('2018-05-08 12:00:00');
            });
            /** 弹窗下模板消息（模板消息只可以设置一种） */
            $client->single->setNotypopload(function (\GeTui\Template\Notypopload $notypopload) use ($client) {
                //（必传）设置样式，结合Style的设置获取指定的样式类型：system(个推),getui(个推),banner(背景图),expand(展开)
                $notypopload->setStyle($client->single->getStyle());
                //（必传）通知栏图标
                $notypopload->setNotyicon();
                //（必传）通知标题
                $notypopload->setNotytitle();
                //（必传）通知内容
                $notypopload->setNotycontent();
                //（必传）弹出框标题
                $notypopload->setPoptitle();
                //（必传）弹出框内容
                $notypopload->setPopcontent();
                //（必传）弹出框图标
                $notypopload->setPopimage();
                //（必传）弹出框左边按钮名称
                $notypopload->setPopbutton1();
                //（必传）弹出框右边按钮名称
                $notypopload->setPopbutton2();
                //现在图标
                $notypopload->setLoadicon();
                //下载标题
                $notypopload->setLoadtitle();
                //（必传）下载文件地址
                $notypopload->setLoadurl();
                //是否自动安装，默认值false
                $notypopload->setIsAutoinstall();
                //安装完成后是否自动启动应用程序，默认值false
                $notypopload->setIsActived();
                //设定展示开始时间，格式为yyyy-MM-dd HH:mm:ss
                $notypopload->setDurationBegin('2018-05-06 12:00:00');
                //设定展示结束时间，格式为yyyy-MM-dd HH:mm:ss
                $notypopload->setDurationEnd('2018-05-08 12:00:00');
            });

            /** 推送消息 */
            $ret = $client->single->push();

            var_dump($ret);

        } catch (\GeTui\ApiException $apiException) {

        }
    }
}
